import axios  from 'axios'
import qs from 'qs'
import router from '../router'
import Vue from 'vue'
const bus = new Vue()
// 创建axios实例
const request = axios.create({
  baseURL:'/conner',
  timeout: 8000
})

// 加拦截
// 请求拦截
request.interceptors.request.use(function (config) {
  bus.$showLoading();
  if(config.method === 'post' && config.data ){
    config.data = qs.stringify(config.data)
  }
  
  // 处理post请求传参  json格式问题
 /* 
 往请求头中 加token
 */
  // 取token
  const access_token = localStorage.getItem('access_token')
  if (access_token) {
    config.headers['access_token'] = access_token
  }
  return config;
}, function (error) {
 
  return Promise.reject(error);
});

// 响应拦截
request.interceptors.response.use(function (res) {
  bus.$hideLoading();
  // code  401 做token过期的处理  跳转到登录
  if (res.data.code === 401) {
    // token过期了 重新获取最新的token 去登录
    router.push('/login')

  }
  return res;
}, function (error) {
  
  return Promise.reject(error);
});

export default request